package 第二章实用类;

import java.util.Scanner;

public class work3 {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("请输入你的身份证信息");
        String id=input.next();
        String year1=id.substring(6,10);
        int year=Integer.parseInt(year1);
        String month1=id.substring(10,12);
        int month=Integer.parseInt(month1);
        String day1=id.substring(12,14);
        int day=Integer.parseInt(day1);
        boolean leapYear=false;
        boolean flag,flag1=true,flag2=true,flag3=true,flag4=true,flag5=true,flag6=true,flag7=true;
        if (year%4==0&&year%100!=0){
            leapYear=true;
        }
        if (year%400==0){
            leapYear=true;
        }
        if (year<1900||year>2100){
            System.out.println("4你输入的身份证号年信息不合法");
            flag1=false;
            boolean flag111=true;
        }
        if (id.length()!=18){
            System.out.println("1.身份证长度不合法");
        }
        for (int i = 0; i <17 ; i++) {
            String byt1=id.substring(i,i+1);
            int byt=Integer.parseInt(byt1);
            for (int j = 0; j <10 ; j++) {
                if (byt==j){
                    flag=true;
                }
                else{flag=false;}
            }
            if (flag=false){
                System.out.println("2.你输入的前17位有非数字");

            }
        }
        String shiBaWei=id.substring(17,id.length());
        if (!shiBaWei.equals("1")&&!shiBaWei.equals("2")&&!shiBaWei.equals("3")&&
                !shiBaWei.equals("4")&&!shiBaWei.equals("5")&&
                !shiBaWei.equals("6")&&!shiBaWei.equals("7")&&!shiBaWei.equals("8")&&
                !shiBaWei.equals("9")&&!shiBaWei.equals("x")){
            System.out.println("3.\t+18位必须是数字或者x");
        }
        if (leapYear){
            if (day >29||day <1){
                System.out.println("5 日信息不合法");flag5=false;
            }
        }
        if (!leapYear){
            if (day >28||day <1){
                System.out.println("6 日信息不合法");
            }
        }
        if (month>12||month<1){
            System.out.println("5 月信息不合法");
        }
        System.out.println("0.身份证合法");
    }

}
